Data Storage Devices (DSDs) are often used to record data on or to reproduce data from a storage media such as, for example, a rotating magnetic disk or a solid-state memory. In some cases, a DSD or a portion of the storage media in a DSD may become damaged or otherwise unreliable for storing data. To help protect against data loss, a data storage system or a DSD can store redundant data in different storage locations to provide a certain level of data reliability.
In one example, a data storage system can use erasure coding to protect against data loss by storing data as erasure coded shards in different storage locations. In erasure coding, data is broken into fragments that can be each expanded and encoded with redundant data to form an erasure coded shard.
Depending on the number of shards, a predetermined level of data reliability or durability can be achieved since the original data object can be reconstructed using less than all of the data shards. This can allow for the loss of some data shards while still being able to recover the original data. For example, where a data object is broken into ten fragments, the fragments can be encoded into fourteen data shards to provide for a predetermined level of data reliability referred to as a ten of fourteen configuration, or EC 10/14. In this example, the fourteen data shards are written in different storage locations in the data storage system and the original data object can be reconstructed using any ten of the fourteen data shards. This can allow for the retrieval of up to four of the fourteen shards to fail while still being able to reconstruct the original data object.